iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0

前言

這篇我用前端來做資料庫呼叫的範例

明天在來說用後端的方法

這樣就會了兩種方法owo

範例

 📌 data = () =>
 {
     var request = new XMLHttpRequest();
     request.open('GET', '/api-php/api/sql_data.php', true);
     request.onload = () => {
     if (this.status >= 200 && this.status < 400)
     {
         var resp = this.response;
         var json = JSON.parse(resp)
         var comments = json.comments
         for (var i = 0; i < comments.length; i++)
         {
             var comment = comments[i];
             console.log(comment);
         }
     }};
     request.send();
 }

前端透過GET的方式

向指定網址取得JSON資料

 📌 $sql = "SELECT * FROM `temp`";
 $stmt = $pdo->prepare($sql);
 $stmt->execute();
 $comments = array();
 try
 {
     while($row = $stmt->fetch(PDO::FETCH_ASSOC))
     {
         array_push($comments, array(
         "id" => $row[$field[0]],
         "name" => $row[$field[1]],
         "data" => $row[$field[2]]
     ));
     }
 }
 catch (PDOException $e)
 {
     echo 'error';
 }
 unset($pdo);
 $json = array("comments" => $comments);
 $response = json_encode($json);
 header('Content-type:application/json;charset=utf-8');
 echo $response;

這裡會把資料庫找到的資料

轉成JSON並輸出

小整理

 📌 var request = new XMLHttpRequest();
 request.open('GET', '/api-php/api/sql_data.php', true);

傳送的位置錯誤的話

會找不到資料

 📌 $json = array("comments" => $comments);
 $response = json_encode($json);

存取資料

並轉成JSON編碼

 📌 this.status >= 200 && this.status < 400

這是HTTP狀態碼

200到400內

表示沒發生錯誤

程式碼收錄:https://github.com/chyhhwen/api-php


上一篇
[DAY20]什麼是API?
下一篇
[DAY22]如何製作API(PHP)?
系列文
從前端到後端,設計出屬於自己的購物網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言